const focusing = {
  install (Vue) {
    // 自定义命令
    Vue.directive('focus', {
      // inserted 只有指令所在组件创建时才触发 用v-show不能重复触发
      inserted (el) {
        // el.nodeName 获取当前指令所在标签的名字
        if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') {
          el.focus()
        } else {
          // 指令所在根标签为 div 内部为 input
          // 获取的为原生标签
          const theInput = el.querySelector('input')
          if (theInput) theInput.focus() // 判断是否为空

          const theTextarea = el.querySelector('textarea')
          if (theTextarea) theTextarea.focus()
        }
      },
      // 指令所在标签更新是触发
      update (el) {
        // el.nodeName 获取当前指令所在标签的名字
        if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') {
          el.focus()
        } else {
          // 指令所在根标签为 div 内部为 input
          // 获取的为原生标签
          const theInput = el.querySelector('input')
          if (theInput) theInput.focus() // 判断是否为空

          const theTextarea = el.querySelector('textarea')
          if (theTextarea) theTextarea.focus()
        }
      }
    })
  }
}

export default focusing
